package org.grid.model.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

/**
 * Interface RMI para realização do cálculo dos LOG's nos nós
 * @author wellington
 */
public interface LogCalculator extends Remote{
    /**
     * Realiza um teste de carga utilizando um pacote padrão
     * @param testLine pacote padrão que pode se utilizar do <code>LoadTest</code> para ser obtido
     * @return o tempo gasto com a operação
     * @throws java.rmi.RemoteException
     */
    long testResponseTime(String[] testLine) throws RemoteException;
    /**
     * Realiza o cálculo de um certo pacote
     * @param lines pacote de dados para cálculo
     * @return o resultado da operação
     * @throws java.rmi.RemoteException
     */
    List<Double> calculate(List<String[]> lines) throws RemoteException;
    /**
     * Indica se o nó está ocupado com um pacote
     * @return sucesso se o nó estiver trabalhando
     * @throws java.rmi.RemoteException
     */
    boolean isWorking() throws RemoteException;
}
